package com.mxf.miaosha.rabbitmq;

import com.mxf.miaosha.redis.RedisService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class MQSender {

    private static Logger log = LoggerFactory.getLogger(MQSender.class);

    @Autowired
    AmqpTemplate amqpTemplate;

    public void sendMiaosha(MiaoshaMessage mm) {
        String msg = RedisService.beanToStr(mm);
        log.info("send miaosha : " + msg);
        amqpTemplate.convertAndSend(MQConfig.MIAOSHA_QUEUE, msg);
    }


//    public void send(Object message){
//        String msg = RedisService.beanToStr(message);
//        log.info("send message : " + msg);
//        amqpTemplate.convertAndSend(MQConfig.QUEUE, msg);
//    }
//
//    public void sendTopic(Object message) {
//        String msg = RedisService.beanToStr(message);
//        log.info("send topic message : " + msg);
//        amqpTemplate.convertAndSend(MQConfig.TOPIC_EXCHANGE, "topic.key1", msg + 1);
//        amqpTemplate.convertAndSend(MQConfig.TOPIC_EXCHANGE, "topic.key2", msg + 2);
//    }
//
//    public void sendFanout(Object message) {
//        String msg = RedisService.beanToStr(message);
//        log.info("send fanout message : " + msg);
//        amqpTemplate.convertAndSend(MQConfig.FANOUT_EXCHANGE,"", msg);
//    }
//
//    public void sendHeaders(Object message) {
//        String msg = RedisService.beanToStr(message);
//        log.info("send headers message : " + msg);
//        MessageProperties properties = new MessageProperties();
//        properties.setHeader("key1", "value1");
//        properties.setHeader("key2", "value2");
//        Message obj = new Message(msg.getBytes(), properties);
//        amqpTemplate.convertAndSend(MQConfig.HEADERS_EXCHANGE, "", obj);
//    }
}
